package arraylist02;

import java.util.ArrayList;

/**
 * ArrayList底层原理
 *   1.ArrayList底层使用的是一个引用类型的数组才存储元素Object[] elementData
 *     第一次调用add()方法添加元素的时候,就会使用默认容量初始化这个数组
 *     int[] arr=new int[10];//这个数组中所有元素都是int类型,相当于一次性声明了10个int类型变量
 *     arr[0]=13; //相当于 int e0 = 13;
 *
 *     Object[] elementData = new Object[10]//这个数组中所有元素都是Object类型,相当于一次性声明10个Object类型变量
 *     elementData[0]="张三" //相当于 Object e0 = "张三" 多态
 *     elementData[1]="李四" //相当于 Object e1 = "李四" 多态
 *
 */
public class ArrayListDemo01 {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();
        al.add("张三");//Object[] elementData = new Object[10]
                      //elementData[0]="张三"
        al.add("李四");//elementData[1]="李四"
        al.add("王五");//elementData[2]="王五"
        System.out.println(al); //底层默认调用al.toString()
    }
}
